Automated Detection of Non-termination and NullPointerExceptions for Java Bytecode

نویسندگان

  • Marc Brockschmidt
  • Thomas Ströder
  • Carsten Otto
  • Jürgen Giesl
چکیده

Recently, we developed an approach for automated termination proofs of Java Bytecode (JBC), which is based on constructing and analyzing termination graphs. These graphs represent all possible program executions in a finite way. In this paper, we show that this approach can also be used to detect non-termination or NullPointerExceptions. Our approach automatically generates witnesses, i.e., calling the program with these witness arguments indeed leads to non-termination resp. to a NullPointerException. Thus, we never obtain “false positives”. We implemented our results in the termination prover AProVE and provide experimental evidence for the power of our approach.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Automated Termination Analysis of Java Bytecode by Term Rewriting Carsten Otto and Marc Brockschmidt and Christian Von Essen and Jürgen Giesl

We present an automated approach to prove termination of Java Bytecode (JBC) programs by automatically transforming them to term rewrite systems (TRSs). In this way, the numerous techniques and tools developed for TRS termination can now be used for imperative object-oriented languages like Java, which can be compiled into JBC.

متن کامل

SAT-based Termination Analysis for Java Bytecode with AProVE

SAT solvers are nowadays the standard solving engines for the search problems in automated termination analysis. Consequently, the performance of current termination tools heavily relies on the speed of modern SAT solvers on the corresponding SAT encodings. If a model for the SAT instance at hand is found, it can be used to instantiate the parameters for the current proof step to advance the te...

متن کامل

Automated Termination Analysis of Java Bytecode by Term Rewriting

We present an automated approach to prove termination of Java Bytecode (JBC) programs by automatically transforming them to term rewrite systems (TRSs). In this way, the numerous techniques and tools developed for TRS termination can now be used for imperative object-oriented languages like Java, which can be compiled into JBC.

متن کامل

Non-Termination Analysis of Java Bytecode

We introduce a fully automated static analysis that takes a sequential Java bytecode program P as input and attempts to prove that there exists an infinite execution of P . The technique consists in compiling P into a constraint logic program PCLP and in proving non-termination of PCLP ; when P consists of instructions that are exactly compiled into constraints, the non-termination of PCLP enta...

متن کامل

Java program analysis by symbolic execution

Program analysis has a long history in computer science. Even when only considering the important aspect of termination analysis, in the past decades an overwhelming number of different techniques has been developed. While the programming languages considered by these approaches initially were more of theoretical importance than of practical use, recently also automated analyses for imperative ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011